/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.easoftware.code.beans.cargas.threading;

import java.io.Serializable;
import java.util.List;
import net.easoftware.code.beans.TipoCargaDatos;
import net.easoftware.code.beans.cargas.DataFilter;
import net.easoftware.code.beans.facade.LineaNegocio;
import net.easoftware.code.beans.facade.RangoEmpresaFc;
import net.easoftware.code.beans.facade.UnidadNegocio;
import org.apache.log4j.Logger;

/**
 *
 * @author eliu
 */
public class CargasFilteringThread implements Runnable, Serializable {

    private static final Logger logger = Logger.getLogger(CargasFilteringThread.class.getName());
    private List data;
    private DataFilter filter;
    private Integer filasProcesadas = 0;
    private Integer rechazadas = 0;
    private List<LineaNegocio> lineasNegocio;
    private List<UnidadNegocio> unidadesNegocio;
    private List<RangoEmpresaFc> rangos;
    private TipoCargaDatos parent;
    private boolean running;

    public Integer getRechazadas() {
        return rechazadas;
    }

    public void setRechazadas(Integer rechazadas) {
        this.rechazadas = rechazadas;
    }

    public TipoCargaDatos getParent() {
        return parent;
    }

    public void setParent(TipoCargaDatos parent) {
        this.parent = parent;
    }

    public List<RangoEmpresaFc> getRangos() {
        return rangos;
    }

    public void setRangos(List<RangoEmpresaFc> rangos) {
        this.rangos = rangos;
    }

    public List<LineaNegocio> getLineasNegocio() {
        return lineasNegocio;
    }

    public void setLineasNegocio(List<LineaNegocio> lineasNegocio) {
        this.lineasNegocio = lineasNegocio;
    }

    public List<UnidadNegocio> getUnidadesNegocio() {
        return unidadesNegocio;
    }

    public void setUnidadesNegocio(List<UnidadNegocio> unidadesNegocio) {
        this.unidadesNegocio = unidadesNegocio;
    }

    @Override
    public void run() {
        running = true;
        logger.info("Hilo de procesamiento de datos");

        logger.info("finalizando hilo de procesamiento");
        running = false;
        logger.info("trasladando datos procesados para almacenamiento");
        parent.getData().addAll(data);
        logger.info("parente data size " + parent.getData().size());
    }

    public boolean isRunning() {
        return running;
    }

    public void setRunning(boolean running) {
        this.running = running;
    }

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
    }

    public Integer getFilasProcesadas() {
        return filasProcesadas;
    }

    public void setFilasProcesadas(Integer filasProcesadas) {
        this.filasProcesadas = filasProcesadas;
    }

    public DataFilter getFilter() {
        return filter;
    }

    public void setFilter(DataFilter filter) {
        this.filter = filter;
    }
}
